﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class Jlparing1Vastus : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJlparing1Vastus {
        
        private Jlparing1Vastus.IJuhtType @__juht;
        
        public Jlparing1Vastus() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public Jlparing1Vastus(Jlparing1Vastus.IJuhtType @juht) {
            this.@__juht = @juht;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected Jlparing1Vastus(IJlparing1Vastus @jlparing1Vastus) {
            this.@__juht = @jlparing1Vastus.Juht;
        }
        
        public virtual Jlparing1Vastus.IJuhtType Juht {
            get {
                return this.@__juht;
            }
            set {
                this.@__juht = value;
            }
        }
        
        public partial class JuhtType : IJuhtType {
            
            private string @__eesnimi;
            
            private string @__perekonnanimi;
            
            private string @__synniaeg;
            
            private string @__isikukood;
            
            private string @__synnikohaRiik;
            
            private string @__haldusyksus;
            
            private string @__aadress;
            
            private Jlparing1Vastus.JuhtType.IJuhiloadType @__juhiload;
            
            public JuhtType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public JuhtType(string @eesnimi, string @perekonnanimi, string @synniaeg, string @isikukood, string @synnikohaRiik, string @haldusyksus, string @aadress, Jlparing1Vastus.JuhtType.IJuhiloadType @juhiload) {
                this.@__eesnimi = @eesnimi;
                this.@__perekonnanimi = @perekonnanimi;
                this.@__synniaeg = @synniaeg;
                this.@__isikukood = @isikukood;
                this.@__synnikohaRiik = @synnikohaRiik;
                this.@__haldusyksus = @haldusyksus;
                this.@__aadress = @aadress;
                this.@__juhiload = @juhiload;
            }
            
            /// <summary>
            /// Required parameters
            /// </summary>
            public JuhtType(string @eesnimi, string @perekonnanimi, string @synniaeg, string @synnikohaRiik, Jlparing1Vastus.JuhtType.IJuhiloadType @juhiload) {
                this.@__eesnimi = @eesnimi;
                this.@__perekonnanimi = @perekonnanimi;
                this.@__synniaeg = @synniaeg;
                this.@__synnikohaRiik = @synnikohaRiik;
                this.@__juhiload = @juhiload;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected JuhtType(IJuhtType @juhtType) {
                this.@__eesnimi = @juhtType.Eesnimi;
                this.@__perekonnanimi = @juhtType.Perekonnanimi;
                this.@__synniaeg = @juhtType.Synniaeg;
                this.@__isikukood = @juhtType.Isikukood;
                this.@__synnikohaRiik = @juhtType.SynnikohaRiik;
                this.@__haldusyksus = @juhtType.Haldusyksus;
                this.@__aadress = @juhtType.Aadress;
                this.@__juhiload = @juhtType.Juhiload;
            }
            
            public virtual string Eesnimi {
                get {
                    return this.@__eesnimi;
                }
                set {
                    this.@__eesnimi = value;
                }
            }
            
            public virtual string Perekonnanimi {
                get {
                    return this.@__perekonnanimi;
                }
                set {
                    this.@__perekonnanimi = value;
                }
            }
            
            public virtual string Synniaeg {
                get {
                    return this.@__synniaeg;
                }
                set {
                    this.@__synniaeg = value;
                }
            }
            
            public virtual string Isikukood {
                get {
                    return this.@__isikukood;
                }
                set {
                    this.@__isikukood = value;
                }
            }
            
            public virtual string SynnikohaRiik {
                get {
                    return this.@__synnikohaRiik;
                }
                set {
                    this.@__synnikohaRiik = value;
                }
            }
            
            public virtual string Haldusyksus {
                get {
                    return this.@__haldusyksus;
                }
                set {
                    this.@__haldusyksus = value;
                }
            }
            
            public virtual string Aadress {
                get {
                    return this.@__aadress;
                }
                set {
                    this.@__aadress = value;
                }
            }
            
            public virtual Jlparing1Vastus.JuhtType.IJuhiloadType Juhiload {
                get {
                    return this.@__juhiload;
                }
                set {
                    this.@__juhiload = value;
                }
            }
            
            public partial class JuhiloadType : IJuhiloadType {
                
                private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload> @__item = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload>();
                
                public JuhiloadType() {
                }
                
                /// <summary>
                /// All parameters
                /// </summary>
                public JuhiloadType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload> @item) {
                    this.@__item = @item;
                }
                
                /// <summary>
                /// Copy Constructor
                /// </summary>
                protected JuhiloadType(IJuhiloadType @juhiloadType) {
                    this.@__item = @juhiloadType.Item;
                }
                
                public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload> Item {
                    get {
                        return this.@__item;
                    }
                    set {
                        this.@__item = value;
                    }
                }
            }
            
            public interface IJuhiloadType {
                
                System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IJuhiload> Item {
                    get;
                    set;
                }
            }
        }
        
        public interface IJuhtType {
            
            string Eesnimi {
                get;
                set;
            }
            
            string Perekonnanimi {
                get;
                set;
            }
            
            string Synniaeg {
                get;
                set;
            }
            
            string Isikukood {
                get;
                set;
            }
            
            string SynnikohaRiik {
                get;
                set;
            }
            
            string Haldusyksus {
                get;
                set;
            }
            
            string Aadress {
                get;
                set;
            }
            
            Jlparing1Vastus.JuhtType.IJuhiloadType Juhiload {
                get;
                set;
            }
        }
    }
}
